package jsyf.oa.facade.contract;

import com.alibaba.dubbo.rpc.protocol.rest.support.ContentType;
import com.alibaba.fastjson.JSONObject;

import javax.ws.rs.Consumes;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.List;

@Path("/contractMainFacade")
@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
@Produces({ContentType.APPLICATION_JSON_UTF_8, ContentType.TEXT_XML_UTF_8})
public interface ContractMainFacade {

    @Path("/selectMainList")
    JSONObject selectMainList(String jsonData);

    @Path("/selectContractList")
    JSONObject selectContractList(String jsonData);

    @Path("/selectContractAccountById")
    JSONObject selectContractAccountById(String jsonData);

    @Path("/updateContractAccountMoney")
    JSONObject updateContractAccountMoney(String jsonData);

    @Path("/receivable")
    JSONObject receivable(String jsonData);

    @Path("/save")
    JSONObject save(String jsonData);


    @Path("/receivableSave")
    JSONObject receivableSave(String jsonData);

    @Path("/newContract")
    JSONObject newContract(String jsonData);

    @Path("/selectContract")
    JSONObject selectContractById(String jsonData);

    @Path("/downDocById")
    JSONObject downDocById(String contractId);

    @Path("/applyAudit")
    JSONObject applyAudit(String jsonData);

    @Path("/uploadFileByContractId")
    Boolean uploadFileByContractId(String jsonData);

    @Path("/getUploadFileByContractId")
    JSONObject getUploadFileByContractId(String jsonData);

    @Path("/getNameAndTel")
    List<JSONObject> getNameAndTel(String jsonData);

    @Path("/senderExpireList")
    List<JSONObject> senderExpireList(String jsonData);

    @Path("/getRegionManagerByUserId")
    List<JSONObject> getRegionManagerByUserId(String jsonData);

    @Path("/remove")
    Boolean remove(String jsonData);

    @Path("/obsolete")
    Boolean obsolete(String jsonData);

    @Path("/selectContractAccountList")
    JSONObject selectContractAccountList(String jsonData);

    @Path("/getAllContractAccount")
    List<JSONObject> getAllContractAccount(String userId,String customerKey,String auditFlag,String haveSettle,String selectCom,String haveDelivery);

    @Path("/getSales0List")
    JSONObject getSales0List(String jsonData);

    @Path("/selectSales0NewList")
    JSONObject selectSales0NewList(String jsonData);

    @Path("/selectReceivable")
    List<JSONObject> selectReceivable(String jsonData);

    @Path("/getContractBuyer")
    List<JSONObject> getContractBuyer(String jsonData);

    @Path("/senderMessage")
    Boolean senderMessage(String mainId);

    @Path("/getRepaymentDate")
    List<JSONObject> getRepaymentDate();

    @Path("/exportContractAccountList")
    List<JSONObject> exportContractAccountList();

    @Path("/senderExpire")
    Boolean senderExpire();

    @Path("/getRepaymentSender")
    JSONObject getRepaymentSender(String jsonData);

    @Path("/getAcountRepaymentListById")
    JSONObject getAcountRepaymentListById(String jsonData);

    @Path("/saveAcountRepaymentListById")
    JSONObject saveAcountRepaymentListById(String jsonData);

    @Path("/selectContractSalesList")
    JSONObject selectContractSalesList(String jsonData);
}
